(module
  (import "" "funcs" (table $funcs 10 funcref))
  (import "" "externs" (table $externs 10 externref))
  (import "" "assert" (func $assert (param externref externref)))
  (func (export "is_null_func") (param i32) (result i32)
    (table.get $funcs (local.get 0))
    (ref.is_null)
  )
  (func (export "is_null_extern") (param i32) (result i32)
    (table.get $externs (local.get 0))
    (ref.is_null)
  )
  (func (export "call") (param i32)
    (call_indirect $funcs (local.get 0))
  )
  (func (export "assert_extern") (param i32 externref)
    (call $assert (table.get $externs (local.get 0)) (local.get 1))
  )
  (func (export "grow_funcs") (param i32)
    (table.grow $funcs (ref.null func) (local.get 0))
    (drop)
  )
  (func (export "grow_externs") (param i32)
    (table.grow $externs (ref.null extern) (local.get 0))
    (drop)
  )
)
